#include <stdlib.h>
#include "HashFIE.h"
#include "ListaFiesta.h"
#include "Fiesta.h"


HashFIE* crear_HashFIE(int numEntradas){
    HashFIE* hash = malloc(sizeof(HashFIE));
    hash->numEntradas = numEntradas;
    hash->entradas = malloc(numEntradas * sizeof(ListaFiesta));
    int i;
    for (i=0; i<numEntradas; i++){
        hash->entradas[i] = nueva_ListaFiesta();
    }
    return hash;
}

void inserta_HashFIE(HashFIE* hash, Fiesta* fiesta){
    int indice = fiesta->codigo % hash->numEntradas;    
    insertarFinal_ListaFiesta(&(hash->entradas[indice]),fiesta);
}

Fiesta* buscar_HashFIE(HashFIE* hash, int cod){
    int indice = cod % hash->numEntradas; 
    ListaFiesta lista = hash->entradas[indice];
    NodoListaFiesta* i = NULL;
    for (i = lista.ini;i!=NULL  && i->fiesta->codigo != cod; i = i->sig);
    if(i==NULL) return NULL;
    return (i->fiesta);
}

void imprimir_HashFIE(HashFIE* h){
    int i;
    for (i=0; i < h->numEntradas; i++){
        imprimir_ListaFiesta(&(h->entradas[i]));
    }
}
